In a wireless communications environment, messages are sent between a wireless device and a network element such as a server. These messages typically include a unique identifier to identify the message. This unique identifier is hereinafter called the “message id”.
In addition, a message will typically include a field identifying the message type in order to allow either the wireless device or the network element to more easily interpret the message.
Messages themselves can often be grouped into a logical group of discrete messages between the device and the network element. For example, an outbound message may somehow correlate to a subsequently received inbound message. The logical group of discreet messages between the device and the server form a transaction. It is often desirable to correlate the messages within a transaction.
In wireless communications message ordering is, however, often asynchronous. Thus, for example, multiple outbound messages can be sent and the inbound messages can be received in an order that is different from the order in which the outbound messages were sent. In order to overcome this, a typical solution is to use a transaction identifier field in every message. This field is added in addition to the message identifier and message type fields. The addition of a transaction identifier field is, however, problematic because the transaction identifier needs to be large enough to distinguish it from other transaction identifiers and thus the overhead in terms of network resources for adding a transaction identifier field to every message is quite large.